package com.atguigu.gmall.realtime.util;

import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * @Author lizhenchao@atguigu.cn
 * @Date 2021/8/28 14:36
 */
public class ThreadPoolUtil {
    public static ThreadPoolExecutor getThreadPool() {
        return new ThreadPoolExecutor(
            100,  // 线程池内核心的线程数
            300, // 最大线程数
            1, // 线程如果空闲, 超过这时间会被销毁
            TimeUnit.MINUTES,
            new LinkedBlockingDeque<>(100)  // 如果线程池没有空闲线程可用,则会把请求放入到这个队列中
        );
    }
}
